Computer networks typically include multiple computers connected to a common computer communication network, for example the internet. In some computer networks, a server computer provides services to a client computer. The client computer can be a remote computer that accesses services from a server computer over the computer network. The server computer, in turn can access other networked computers providing services useful to the client. Multiple client computers can access a single server computer.
A typical internet-mediated enterprise conducts business with customers by interacting with users through a web browser on the users' computer. Referring to FIG. 1, client computers 10 having displays 12 execute software applications through graphic user interfaces 14 (e.g. a web browser) connected via a computer network 90 to a server computer 20 having a storage device 23. A user operating the client computer contacts the server computer through the web browser over the computer network to request information. A server provides web pages to the client computer. The client computer displays the pages to the user. The user then interacts with a user interface presented by the web pages. The interaction can take a variety of forms, depending on the nature of the business.
Some internet-mediated businesses use large data sets and data files, for example digital images. Image products purveyed by such businesses are frequently customized by users who desire to process their digital images and use the processed images as part of the image products. The digital images can take perceptible amounts of time to process or transfer over the internet.
Task responsiveness is an important characteristic of any computer application running on a single computer or over a computer network. In particular, users performing work with a computer or over a computer network prefer not to wait for the work to complete. Some computing tasks are performed through a web browser executing on a client computer that interacts with a network-connected server computer. The client computers can execute relatively slowly, particularly for image-processing tasks. Moreover, the time required to transmit digital images from a client to a server over a network can be lengthy.
Responsiveness can be improved by increasing the network bandwidth to improve communication rates. This is particularly useful when large amounts of data, for example images, are communicated between the various network computers, especially between a client and a server, and between a server and a networked storage system. Responsiveness can also be improved by increasing the capacity of the various network elements, for example by using faster computers with more memory.
User-interactive client computer application software downloaded over the internet from a server computer is known in the industry and practiced for a variety of image products, such as photo books, greeting cards, and calendars. The user interaction often includes actions such as selecting images and templates, dragging and dropping images into template image openings, centering, cropping, and zooming selected images in openings, and providing text captions.
Referring to FIG. 5A, in some prior-art image-processing systems operated through the internet that produce image-based products, a client computer operated by a user requests web pages from a server through a web browser. The server responds to the request with the requested information, often including a user-interactive interface and first processing software. This interface can be displayed to the user by the client, at which point the user can interact with the software on a client to specify an image product. Once the specification is complete, the image product is rendered on the client computer and, in response to a user event such as a request to preview the image product, the image product is displayed by the first software application to the user. Alternatively, referring to FIG. 5B, a user might request that the rendered image product be emailed to a second user, who can then display the rendered image product using the same, or different, software on a different client computer.
In an alternative prior-art workflow model illustrated in FIG. 6A, a client computer operated by a user requests web pages from a server through a web browser. The server responds to the request with the requested information, often including a user-interactive interface and first processing software. This interface can be displayed to the user by the client, at which point the user can interact with the software on a client to specify an image product. The image product can be interactively viewed, for example with low-resolution images. Once the specification is complete, the specification can be stored and, in response to a user event, such as a request to preview the final image product, the specification can be sent to a server and then to a second client where it is rendered, for example using the same type of software tool as was used to specify the image product. Alternatively, as shown in FIG. 6B, the image product can be rendered on the client using the same software application, the rendered image transferred to a server where it can be stored and then provided to other users upon request from the other users. The other users can view the rendered image product with any suitable image viewing software.
In all of these prior-art cases, the time between specification of an image product and the availability of a rendered image product can be perceptible. While increasing the performance of network devices such as client computers, server computers, and computer networks is useful, there remains a need for improving networked computer services to provide responsive and efficient performance for given network and computing resources.